/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.OneToMany;
/**
 *
 * @author Elias Mendoza
 */
@Entity
@Table(name="referencia")
public class Referencia implements Serializable{
  @Id
  @GeneratedValue(strategy= GenerationType.IDENTITY)
  private int id;
  @Column(name="capacidad_campo",nullable=false)
  private float capacidadCampo;
  @Column(nullable=false)
  private float optimo;
  @Column(name="punto_critico",nullable=false)
  private float puntoCritico;
  @Column(name="punto_marchites",nullable=false)
  private float puntoMarchites;
  @Column(nullable=false)
  private float saturacion;
  //********Estableciendo relacion 1:M entre referencia_sustrato y sustrato(una referencia_sustrato muchos sustratos)
  @OneToMany(cascade= CascadeType.ALL,mappedBy="referencia")
  private List<Sustrato> sustrato;
  //***************************************************************************************************************

  public Referencia() {
  }

  public List<Sustrato> getSustrato() {
    return sustrato;
  }

  public void setSustrato(List<Sustrato> sustrato) {
    this.sustrato = sustrato;
  }
  
  public float getCapacidadCampo() {
    return capacidadCampo;
  }

  public void setCapacidadCampo(float capacidadCampo) {
    this.capacidadCampo = capacidadCampo;
  }

  public int getId() {
    return id;
  }


  public float getOptimo() {
    return optimo;
  }

  public void setOptimo(float optimo) {
    this.optimo = optimo;
  }

  public float getPuntoCritico() {
    return puntoCritico;
  }

  public void setPuntoCritico(float puntoCritico) {
    this.puntoCritico = puntoCritico;
  }

  public float getPuntoMarchites() {
    return puntoMarchites;
  }

  public void setPuntoMarchites(float puntoMarchites) {
    this.puntoMarchites = puntoMarchites;
  }

  public float getSaturacion() {
    return saturacion;
  }

  public void setSaturacion(float saturacion) {
    this.saturacion = saturacion;
  }

  @Override
  public String toString() {
    return "Cc:" + capacidadCampo + ",Op:" + optimo + ",Pc:" + puntoCritico + ",Pm:" + puntoMarchites + ",S:" + saturacion;
  }

 

  @Override
  public boolean equals(Object obj) {
    if (obj == null) {
      return false;
    }
    if (getClass() != obj.getClass()) {
      return false;
    }
    final Referencia other = (Referencia) obj;
    if (this.id != other.id) {
      return false;
    }
    if (this.sustrato != other.sustrato && (this.sustrato == null || !this.sustrato.equals(other.sustrato))) {
      return false;
    }
    return true;
  }

  @Override
  public int hashCode() {
    int hash = 5;
    hash = 53 * hash + this.id;
    hash = 53 * hash + (this.sustrato != null ? this.sustrato.hashCode() : 0);
    return hash;
  }
  
  

 
   
}
